# -*- coding: utf-8 -*-
# time: 2025/4/9 14:01
# file: his01.py
# author: hanson
"""
LangChain通过Memory工具类为Agent和Chain提供了记忆功能，让智能应用能够记住前一次的交互，比如在聊天环境中这一点尤为重要。

Chat Message History（聊天消息历史）
最常见的一种对话内容中的Memory类，这就好比是在你的乐高角色之间建立了一个记忆网络，使它们能够记住过去的对话，
这样每次交流都能在之前的基础上继续，使得智能积木人能够在每次对话中保持连贯性。
案例：
会话读取历史
"""
import redis
from langchain_community.chat_message_histories import RedisChatMessageHistory
# 配置Redis连接参数（建议从环境变量读取敏感信息）
REDIS_URL = "redis://:1234qwer@192.168.6.43:6379/6"  # 密码前加冒号
# 1. 初始化Redis历史存储（需安装redis-py）
history = RedisChatMessageHistory(
    session_id="user123",  # 用户唯一标识
    key_prefix="lang:history",
    url=REDIS_URL  # Redis连接
)

# 2. 添加消息
history.add_user_message("我想学习LangChain")
history.add_ai_message("LangChain是构建AI应用的好工具")

# 3. 从其他会话读取历史
new_history = RedisChatMessageHistory(
    session_id="user123",
    key_prefix="lang:history",
    url=REDIS_URL  # Redis连接
)
print(f"历史记录：{new_history.messages}")